/// @brief First implementation of the first interface
/// @file FirstImplementOfFirst.hpp
/// @author Szymon Janikowski
///	@author Pawel Gilewski

#ifndef FIRST_IMP_OF_FIRST
#define FIRST_IMP_OF_FIRST
#include "../PluglibTest/FirstInterface.hpp"
#include "../PluglibTest/FirstInterfaceFactory.hpp"
#include <iostream>


///@brief constatn containing name of the implementation
#define FI_IMPL_NAME "FirstImplOfFirst"

class FirstImplementOfFirst : public FirstInterface
{
public: 
	void action(){cout <<"First Implementation of First Interface: Action with no parameters"<<endl;}
	void action(string par){cout<<"First Implementation of First Interface: Action with par: " << par << endl;}
};

class FirstFactoryOfFirst : public FirstInterfaceFactory
{
public:
	//static const string name_;
	std::string getName(){return FI_IMPL_NAME;};
	InterfaceBase* create(){return new FirstImplementOfFirst();}
};
//const string FirstFactoryOfFirst::name_ = "FirstImplOfFirst";
#endif